home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part2 / 12465 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  1.1 KB

  1. Path: lrz-muenchen.de!news
  2. From: watzka@stat.uni-muenchen.de (Kurt Watzka)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: Sort Function
  5. Date: 31 Mar 1996 22:39:59 GMT
  6. Organization: Leibniz-Rechenzentrum, Muenchen (Germany)
  7. Distribution: world
  8. Message-ID: <4jn1jv$1m9@sparcserver.lrz-muenchen.de>
  9. References: <4jmq99$cqi@freenet-news.carleton.ca>
  10. NNTP-Posting-Host: sun2.lrz-muenchen.de
  11.  
  12. aq436@FreeNet.Carleton.CA (Jerry Boyd) writes:
  13.  
  14. >How would I WRITE a function (called sort3) that would 
  15. >sort three integers (in assending order) by using pointers
  16. >and NOT arrays?
  17.  
  18. How about:
  19.  
  20.    #include <stdlib.h>
  21.  
  22.    static int 
  23.    s3cmp(const void *a, const void *b)
  24.    {
  25.       const int ia = *(const int *)a;
  26.       const int ib = *(const int *)b;
  27.       
  28.       return ia < ib ? - 1 : ia > ib ? 1 : 0;
  29.    }
  30.  
  31.    void 
  32.    sort3(int *a, int *b, int *c)
  33.    {
  34.       int tmp[3], *p;
  35.  
  36.       *tmp = *a;
  37.       p = tmp;
  38.       *(++p) = *b;
  39.       *(++p) = *c;
  40.       qsort(tmp, sizeof tmp / sizeof *tmp, sizeof *p, s3cmp);
  41.       *c = *p--;
  42.       *b = *p--;
  43.       *a = *p;
  44.    }
  45.  
  46. Kurt
  47. -- 
  48. | Kurt Watzka                             Phone : +49-89-2180-6254
  49. | watzka@stat.uni-muenchen.de
  50.